import { CustomI18NITF } from '@INTERFACES/Common'
import { DoctorITF } from '@INTERFACES/Doctor'
import { TagITF } from '@INTERFACES/Tag'
import { RELATIONSHIP_ENUM, GENDER_ENUM, PATIENT_REGISTRATION_STATUS_ENUM } from '@CONSTANTS/patient'
import { ConsultationDataITF } from '@INTERFACES/SmartAssistant'
import { FILE_TYPE_ENUM } from '@CONSTANTS/common'
import { MedRecordDetail } from '@INTERFACES/MedRecord'
import { MED_RECORD_UPLOADED_BY } from '@CONSTANTS/medRecord'

export interface PatientITF {
  AcquireChannel?: string
  AddedDate: number
  Allergies: string
  AllergiesEnabled: boolean
  Birthdate: number
  City: CustomI18NITF
  Country: CustomI18NITF
  CreatedDate: number
  CurrentHistory: string
  CurrentHistoryEnabled: boolean
  District: CustomI18NITF
  Doctors: DoctorITF[]
  FamilyHistory: string
  FamilyHistoryEnabled: boolean
  Gender: GENDER_ENUM
  Height: number
  Name: CustomI18NITF
  PastHistory: string
  PastHistoryEnabled: boolean
  PatientId: string
  PatientSource: string
  PatientType: string
  PersonalId: string
  PhoneNumber: string
  PresentHistory: TagITF[]
  RegisterDate: number
  RegistrationStatus: PATIENT_REGISTRATION_STATUS_ENUM
  Relationship: RELATIONSHIP_ENUM
  State: CustomI18NITF
  Status: string
  SubChannel: string
  SupplementalInfo: string
  SurgicalHistory: string
  SurgicalHistoryEnabled: boolean
  UserId: string
  UserName: string
  Weight: number
  p8Id: string
  DefaultPatientEnabled: boolean
  myConsultationsWithTotal: ConsultationDataITF
  MedRecord?: MedRecord
  HasPainLog?: boolean
}

export interface MedRecord {
  DoctorUserId: string
  MedRecordId: string
  Status: string
}

export interface PatientFileITF{
  p8Id: string
  PatientId: string
  FileName: string
  Type: FILE_TYPE_ENUM
  Title: CustomI18NITF
  CreatedDate: number
  Status: string
  Viewed: boolean
  PreviewImage?: string
  UploadedBy?: MED_RECORD_UPLOADED_BY
}

export interface MedRecordStateITF {
  loadingMedRecord: boolean
  error?: string
  medRecordDetail: MedRecordDetail
}
